export default {
    name: 'JSelectBizQueryItem',
    props: {
        queryParam: Object,
        queryConfig: Array,
    },
    data() {
        return {}
    },
    methods: {
        renderQueryItem() {
            return this.queryConfig.map(queryItem => {
                const {key, label, placeholder, dictCode, props, customRender} = queryItem
                const options = {
                    props: {},
                    on: {
                        pressEnter: () => this.$emit('pressEnter'),
                    }
                }
                if (props != null) {
                    Object.assign(options.props, props)
                }
                if (placeholder === undefined) {
                    if (dictCode) {
                        options.props['placeholder'] = `请选择${label}`
                    } else {
                        options.props['placeholder'] = `请输入${label}`
                    }
                } else {
                    options.props['placeholder'] = placeholder
                }

                let input
                if (typeof customRender === 'function') {
                    input = customRender.call(this, {key, options, queryParam: this.queryParam})
                } else if (dictCode) {
                    input = <j-dict-select-tag {...options} vModel={this.queryParam[key]} dictCode={dictCode}
                                               style="width:180px;"/>
                } else {
                    input = <a-input {...options} vModel={this.queryParam[key]}/>
                }
                return <a-form-item key={key} label={label}>{input}</a-form-item>
            })
        },
    },
    render() {
        return <span>{this.renderQueryItem()}</span>
    },
}